Обучение/Помощь новичкам | Как устроить Бд?
Тема закрыта by
Kruk
Причина: Разобрался с проблемой было так $req = mysql_query("SELECT * FROM `buildings_shop`,`drop_vesh` WHERE `building`='$_GET[id]' and `buildings_shop`.`incode` = `drop_vesh`.`incode`"); $mag[name] [$mag[id]]//на что он показывал id вещи из главной таблицы $mag[name] [$mag[item]]//просто переименовал id в магазине на item и теперь он показывает номер строки вещи в магазине как и задумивалось в двух таблицах которые я обьеденял были поля id
Причина: Разобрался с проблемой было так $req = mysql_query("SELECT * FROM `buildings_shop`,`drop_vesh` WHERE `building`='$_GET[id]' and `buildings_shop`.`incode` = `drop_vesh`.`incode`"); $mag[name] [$mag[id]]//на что он показывал id вещи из главной таблицы $mag[name] [$mag[item]]//просто переименовал id в магазине на item и теперь он показывает номер строки вещи в магазине как и задумивалось в двух таблицах которые я обьеденял были поля id
Столкнулся с такой проблемой.
Скачял скрипт игры и начял переписывать бд и скрипт.
Бд там была устроина таким образом что в инвентаре полностью написаны статы вещей также само было и в магазине и в дропе вещей.
Проблема в том что
1 Такой тип Бд называеться многое ко многим и такие создавать не разумно
2 Вещи не зависят от одной главной таблицы вещей по которой будит построина википедия вещей(допустим заходиш в вики смотриш вешь там стоит 10 в инвентарь заходиш там стоит 3 в магазин там стоит 5 допустим урон)
3 Когда переделываеш статы в магазине то статы в инвентаре не изменяться я подумал как ето исправить и подумал написать скрипт при котором вещи сравниваються по вещам из главной таблицы(тогда додумался только до етого сичас подумал что можно при замене статов выводить имеющиеся вещи главной таблицы и при замени менят их в опредиленых давблицах где там допустим name = name но начял писать один ко многим)
4 Такая бд больше весит
Решыл писать один ко многим есть главная таблица и в магазине и инвентаре пишуться только incode вещи incode = incode главной таблицы от которой и беруться статы.
Все написал и все вродибы норм статы выводиться боевка работает но столкнулся с такой проблемой что в инвентвре у всех вещей id 1 ( здесь id ето номер строки инвентаря(не вещи)).
Гогда вещь примеру продаеш нужно штоб id инвентаря уничтожалассь
Сам бор вещи с бд имеет 3 строки
$req = mysql_query("SELECT * FROM `buildings_shop` WHERE `building`='$_GET[id]'");//родключяумся к определеному магазину
$res = mysql_fetch_array($req);//масив
$veshs = mysql_query("SELECT * FROM `buildings_shop`,`drop_vesh` WHERE `building`='$_GET[id]' and `drop_vesh`.`incode` = `buildings_shop`.`incode`");//слияние таблиц берем вешь и выводим где incode веши магазина incode = incode
вот сам показ веши
echo"<a href=\"shop.php?id=$id&mod=info&act=1&item=$res[id]\">$mag[name] [$res[id]]</a>//имя етой вещи иг главной табл,item ето строка вещи в магазине $res[id] ето отже строка вещи в магазине
[<a href=\"shop.php?id=$_GET[id]&mod=buy&act=1&item=$res[id]\">купить</a>, $$mag[cena]]<br/>";
сам я аонял почему 1 потомушто первый id строки вещи 1 нету просто закономерности статы беру с гл табл а id строки из магазина и поетому береться первый полпавшыйся id строки потомушто нету еода который требывал к примеру если вещь на 3 месте знач и id 3(пример)
Скажыте как лутше устроить бд или как правельно сделать то что я написал заранее спасибо.
------
56673_code.png (170.9 Kb)
Скачиваний: 90
Скачял скрипт игры и начял переписывать бд и скрипт.
Бд там была устроина таким образом что в инвентаре полностью написаны статы вещей также само было и в магазине и в дропе вещей.
Проблема в том что
1 Такой тип Бд называеться многое ко многим и такие создавать не разумно
2 Вещи не зависят от одной главной таблицы вещей по которой будит построина википедия вещей(допустим заходиш в вики смотриш вешь там стоит 10 в инвентарь заходиш там стоит 3 в магазин там стоит 5 допустим урон)
3 Когда переделываеш статы в магазине то статы в инвентаре не изменяться я подумал как ето исправить и подумал написать скрипт при котором вещи сравниваються по вещам из главной таблицы(тогда додумался только до етого сичас подумал что можно при замене статов выводить имеющиеся вещи главной таблицы и при замени менят их в опредиленых давблицах где там допустим name = name но начял писать один ко многим)
4 Такая бд больше весит
Решыл писать один ко многим есть главная таблица и в магазине и инвентаре пишуться только incode вещи incode = incode главной таблицы от которой и беруться статы.
Все написал и все вродибы норм статы выводиться боевка работает но столкнулся с такой проблемой что в инвентвре у всех вещей id 1 ( здесь id ето номер строки инвентаря(не вещи)).
Гогда вещь примеру продаеш нужно штоб id инвентаря уничтожалассь
Сам бор вещи с бд имеет 3 строки
$req = mysql_query("SELECT * FROM `buildings_shop` WHERE `building`='$_GET[id]'");//родключяумся к определеному магазину
$res = mysql_fetch_array($req);//масив
$veshs = mysql_query("SELECT * FROM `buildings_shop`,`drop_vesh` WHERE `building`='$_GET[id]' and `drop_vesh`.`incode` = `buildings_shop`.`incode`");//слияние таблиц берем вешь и выводим где incode веши магазина incode = incode
вот сам показ веши
echo"<a href=\"shop.php?id=$id&mod=info&act=1&item=$res[id]\">$mag[name] [$res[id]]</a>//имя етой вещи иг главной табл,item ето строка вещи в магазине $res[id] ето отже строка вещи в магазине
[<a href=\"shop.php?id=$_GET[id]&mod=buy&act=1&item=$res[id]\">купить</a>, $$mag[cena]]<br/>";
сам я аонял почему 1 потомушто первый id строки вещи 1 нету просто закономерности статы беру с гл табл а id строки из магазина и поетому береться первый полпавшыйся id строки потомушто нету еода который требывал к примеру если вещь на 3 месте знач и id 3(пример)
Скажыте как лутше устроить бд или как правельно сделать то что я написал заранее спасибо.
------
Скачиваний: 90
А что тут сложного?? Если я правильно понял то есть основная таблица со шмотом где есть базовые статы и прочее каждый шмот имеет свой ID так просто сделай в магазине доп. поле куда будет писать ID того самого шмота из основной баблицы.
DenSBK, Нет с тем у меня все правильно есть поле incode.
Просто я требыавл от скрипта показать мне id строки в магазине на которой у меня хранилась определеный шмот а он мне показывал на любом шмоте id 1 потомушто певый попавшыйся шмот имел id строки в магазине 1
Просто я требыавл от скрипта показать мне id строки в магазине на которой у меня хранилась определеный шмот а он мне показывал на любом шмоте id 1 потомушто певый попавшыйся шмот имел id строки в магазине 1
